#ifndef UTILITY_HPP
#define UTILITY_HPP
#include <sys/types.h>
inline u_int16_t CalCRC16(const u_char* buf, const int len)
{
    int crc_gen = 0xa001;
    int  crc = 0xffff;
    if(len != 0)
    {
        for(int i=0;i<len;i++)
        {
            crc ^= buf[i]&0xFF;
            for(int j=0;j<8;j++)
            {
                if((crc & 0x01) == 0x01)
                {
                    crc >>= 1;
                    crc ^= crc_gen;
                }
                else
                {
                    crc >>= 1;
                }
            }
        }
    }
    return static_cast<u_int16_t>(crc);
}

#endif // UTILITY_HPP
